In certain computing environments, such as computing environments implemented using a service-oriented architecture (“SOA”), it is not uncommon for a service to obtain data from one or more data sources and then to provide the obtained data to another service for processing. In some cases, however, the called service may utilize only a portion of the data obtained and provided by the calling service. In cases such as this, the calling service may waste computing resources, such as central processing unit (“CPU”) cycles and network bandwidth, obtaining and transmitting data that is not utilized by the called service.
As a simple example of the scenario described above, a called service may be requested to return the product of a set of numbers provided by a calling service. In the act of multiplying the numbers, the called service may encounter the number zero. Since all other numbers not yet inspected by the called service cannot change due to the fact that the final result will be zero, the called service may stop multiplying and return zero to the calling service when the zero is encountered. In this example, the calling system may have gathered a significant amount of numbers that are not inspected by the called service. This act of gathering may have required multiple service calls to other systems, services or databases. The computing resources unnecessarily expended in gathering and transmitting unused data in scenarios such as these may be significant.
It is with respect to these and other considerations that the disclosure made herein is presented.